/* 
 * File:   Derivada_DifDivididas.h
 * Author: ginancm
 *
 * Created on 12 de enero de 2012, 06:00 PM
 */

#ifndef DERIVADA_DIFDIVIDIDAS_H
#define	DERIVADA_DIFDIVIDIDAS_H
#include <cmath>

class Derivada_DifDivididas {
public:
    
    Derivada_DifDivididas(long double Xs[], int n);
    Derivada_DifDivididas(const Derivada_DifDivididas& orig);
    virtual ~Derivada_DifDivididas();
    
    //Calcula derivada usando diferencias divididas hacia adelante
    long double CalcularAdelante(long double x, long double x1, long double hi); 
    // Calcula el error aproximado en la derivada calculada con dif. div. hacia adelante
    long double ErrorAproxAdelAtras(long double x1, long double x2, long double hi);
    
    long double maximoDeriv2(long double x1, long double x2);
    //Calcula derivada usando diferencias divididas hacia atras
    long double CalcularAtras(long double x1, long double x, long double hi);
    //Calcula derivada usando diferencias divididas centradas
    long double CalcularCentradas(long double x1, long double x2, long double hi);    
    // Calcula el error aproximado en la derivada calculada con dif. div. centradas
    long double ErrorAproxCentradas(long double x1, long double x, long double x2, long double hi);
    
    long double maximoDeriv3(long double x1, long double x2, long double x3);
    
    long double funcion(long double x);
    long double derivadaTeorica(long double x);
    long double derivadaTeorica2(long double x);
    long double derivadaTeorica3(long double x);
    
private:
    
    int nDatos;
    long double * array_datosX;

};

#endif	/* DERIVADA_DIFDIVIDIDAS_H */

